1. Field of the Invention
The present invention pertains to embedded web access functionality. More particularly, this invention relates to providing an embedded web server that is based on or configured specifically for web applications run on a device with limited computing and storage resources such that the web server is application-specific and is small enough to be embedded and run on the device.
2. Description of the Related Art
An Internet network system typically includes an Internet Service Provider (ISP) system and an interconnect network that connects the ISP system with remote user terminals and other ISP systems. An ISP system typically includes a web server that utilizes Internet applications, such as electronic mail, bulletin boards, news groups, and World Wide Web access, to provide data accesses and services to users via their user terminals. Each of the user terminals includes a web browser that allows the user to access the contents hosted in the web servers of the ISP systems.
The rapid growth of the Internet, widespread use of the World Wide Web, and a trend toward deployment of broadband residential networks have led to the development of embedding the web server into electrical and electronic devices such as home appliances (e.g., washing machine), peripheral devices (e.g., scanner and printer) of a computer system, and measurement instruments (e.g., blood pressure analyzer). This means that a web server can be either implemented in one or several physically separate computer systems, or embedded within an electrical or electronic device.
The embedded web server can be implemented in software form. It is therefore desirable to develop a generic web server that can be embedded in various devices. However, problems typically arise when developing such a generic web server. One problem is that different computer systems and/or electronic devices have their processing resources conformed to different hardware architectures (referred to as hardware platforms for software execution). Each architecture is usually defined by a particular instruction set, hardware register set, and memory arrangement, etc. Software written or compiled to be executed on a particular hardware platform (i.e., native code) usually does not run on other non-compatible hardware platforms. This means that a web server for a particular hardware platform is typically only suitable for devices of that platform.
One prior solution to this problem is to provide a virtual machine for the generic web server. The virtual machine enables the generic web server to execute on a variety of differing hardware device platform. As is known, the software programs executing under such a virtual machine usually take the form of a stream of instructions, each of which conforms to a predefined instruction set supported by the virtual machine. The virtual machine then either interprets each of the instructions in the stream and provides emulation of the instructions in the native code of the particular hardware platform, or generates native code version of the software programs of the particular hardware platform.
FIG. 1 shows that prior solution. As can be seen from FIG. 1, the device 10 includes a device platform 11, a virtual machine 12, an embedded web server 13, and web application programs 14. The device platform 11 includes hardware 11b and native codes 11a. The native codes 11a typically include device hardware-specific system programs (e.g., device operating systems) that (1) manage the resources of the device 10 and (2) execute other application programs in native code. The virtual machine 12 runs on top of the native codes 11a. The web server 13 is a generic web server. The web applications 14 are functional extensions of the web server 13. The virtual machine 12 enables the embedded generic web server 13 and the web applications 14 to execute on a variety of differing hardware/device platforms.
However, disadvantages are still associated with the prior solution shown in FIG. 1. One disadvantage is that the virtual machine typically significantly increases the size of the embedded web server since the embedded web server structure now needs to include both the web server and the virtual machine. In addition, the size of the virtual machine is also relatively large. This is due to the fact that the virtual machine needs to be applicable to a large variety of web applications. To achieve this, the virtual machine needs to contain codes for different web applications, even though these web applications may not be running in the device. Unfortunately, this one-size-fits-all virtual machine typically causes the web server structure to consume large amounts of resources such as memory and processor cycles and are therefore not well suited for devices having relatively limited resources.
Thus, there is a need to develop a web server structure that requires minimized storage space when embedded in a device.